function configuraImagemTopo(){
	
	var heightImagem = 399;
	var widthImagem = 747;
	
	var altura = parseInt((heightImagem / widthImagem * $(".centraliza-imagem").width()) + 15);
	var largura = parseInt((widthImagem / heightImagem * altura));
	
	if (largura >= widthImagem){
		$("#logo_admin").height(heightImagem);
		$("#logo_admin").width(widthImagem);
	}else{
		$("#logo_admin").height(altura);
		$("#logo_admin").width(largura);
	}
}

function realizaLogin() {
	
	limparMensagem();
	desabilitaBotoes()
	
	$.ajax({
        url:  basepath+"admin/login/efetuarLogin",
        data: $('#formLogin').serialize(),
        type: 'POST',
        async: false,
        success: function(retorno){
        	
        	var obj = jQuery.parseJSON( retorno );
        	
    		if (obj.sucesso == true) {
    			
    			if (obj.redirect == true){
    				window.parent.location = basepath+"admin/alterar_senha";
    			} else {
    				window.parent.location = basepath+"home";
    			}

    		} else {
    			
    			habilitaBotoes();
    			
    			// Mostra mensagem
    			$("#mensagem").show();
    			$("#mensagem").prepend('<div class="alert '+obj.tipoMensagem+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+obj.mensagem+'</div>');
    		}
        	
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
        	habilitaBotoes();
        	
        	// Mostra mensagem
			$("#mensagem").show();
			$("#mensagem").prepend('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>Ocorreu um erro. Tente novamente mais tarde!</div>');
        }
    });

}

function esqueciSenha(){
		
	limparMensagem();
	limparMensagemModal();
	desabilitaBotoes();
	
	$.ajax({
        url:  basepath+"admin/login/recuperarSenha",
        data: $('#formModal').serialize(),
        type: 'POST',
        async: false,
        success: function(retorno){
        	
          habilitaBotoes();
          
          // Mostra mensagem
          $("#mensagemModal").show();
          
          var obj = jQuery.parseJSON( retorno );
      							  
      	  if(obj.sucesso == true){	
      		//Email enviado com sucesso.
      		  $("#mensagemModal").prepend('<div class="alert '+obj.tipoMensagem+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+obj.mensagem+'</div>');
      		  
      		  //Limpando campo do email
      		  $('#email').val("");
      		  
      		  //Escondendo a modal
      		  setTimeout(function() {  $('#myModal').modal('hide') }, 3000);
      		  
      		  limparFormModal();
      	  }else{
      		  $("#mensagemModal").prepend('<div class="alert '+obj.tipoMensagem+' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+obj.mensagem+'</div>');
      	  }
      	  
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
        	habilitaBotoes();
        	
        	// Mostra mensagem
            $("#mensagemModal").show();
            $("#mensagemModal").prepend('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>Ocorreu um erro. Tente novamente mais tarde!</div>');
        }
    });
		
}

function limpaCampo(){
	$('#formLogin').each (function(){
	  this.reset();
	});
	
	$('#formModal').each (function(){
	  this.reset();
	});
}

function desabilitaBotoes(){
	// Desabilita os botões
	$("#buttonLogin").attr("disabled", "disabled");
	$("#buttonCancelarModal").attr("disabled", "disabled");
	$("#buttonEnviarModal").attr("disabled", "disabled");
}

function habilitaBotoes(){
	// Habilita o botão novamente
	$("#buttonLogin").removeAttr("disabled");
	$("#buttonCancelarModal").removeAttr("disabled");
	$("#buttonEnviarModal").removeAttr("disabled");
}

function limparMensagem(){
	// Limpando dados da mensagem
	$("#mensagem").hide();
	$("#mensagem").html("");
}

function limparMensagemModal(){
	// Limpando dados da mensagem
	$("#mensagemModal").hide();
	$("#mensagemModal").html("");
}

function limparFormModal(){
	$('#formModal').data('formValidation').resetForm();
}

function limparFormLogin(){
	$('#formLogin').data('formValidation').resetForm();
}

function formModal() {
	
	$('#formModal').formValidation({
		framework: 'bootstrap',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        button: {
		    // The disabled class
		    disabled: ''
		},
		fields : {
			email : {
				validators : {
					notEmpty : {
						message : 'Email deve ser informado.'
					},
					emailAddress: {
						message: 'Email inválido.'
					}
				}
			}
		}
	})
	.on('success.form.fv', function(e) {		
		// Prevent form submission
        e.preventDefault();
        
        esqueciSenha();
    });
}

function formLogin() {
	
	$('#formLogin').formValidation({
		framework: 'bootstrap',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        button: {
		    // The disabled class
		    disabled: ''
		},
        fields : {
			usuario : {
				validators : {
					notEmpty : {
						message : 'Usuário deve ser informado.'
					}
				}
			},
			senha : {
				validators : {
					notEmpty : {
						message : 'Senha deve ser informada.'
					}
				}
			}
		}
	})
	.on('success.form.fv', function(e) {
		// Prevent form submission		
        e.preventDefault();
        
		realizaLogin();
    });
}

function init() {
	
	limpaCampo();
	
	formLogin();
	
	formModal();
	
	configuraImagemTopo();
	
	$(window).resize(function() {
		// Adicionar sempre que a tela for redimensionada
		configuraImagemTopo();
	});
}

$(document).ready(init);